#ifndef _CANARY2_HTTP_PARSER2_H_
#define _CANARY2_HTTP_PARSER2_H_

#include "chunked_buffer.h"
#include <string_view>
#include <ranges>

namespace wilson::http
{
    /* Interface of the corresponding parser for each parsing stage
     * For HTTP/1.1
     */
    class parser_unit_interface
    {
    public:
        virtual void execute() = 0;
        virtual void set_raw_payload(chunked_buffer cb);
    };

    ::std::string_view first_line(chunked_buffer cb);
    ::std::string_view header_kvs(chunked_buffer cb);
    ::std::string_view body(chunked_buffer cb);
    ::std::string_view after_body_kvs(chunked_buffer cb);
}

#endif
